﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>设置窗口形状 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 设置窗口形状 function changes the shape of the specified window to be the specified rectangle, ellipse, or polygon." />
<meta name="ahk:equiv-v1" content="commands/WinSet.htm#Region" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>设置窗口形状</h1>

<p>将指定窗口的形状改为指定的矩形, 椭圆或多边形.</p>

<pre class="Syntax"><span class="func">设置窗口形状</span> <span class="optional">Options, WinTitle, WinText, ExcludeTitle, ExcludeText</span></pre>

<h2 id="Parameters">参数</h2>
<dl>
    <dt>Options</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
        <p>如果为空或省略, 则窗口恢复到其原始/默认显示形状. 否则, 可指定以下一个或多个选项, 每个选项之间用空格分隔:</p>
        <p><strong>Wn</strong>: 矩形或椭圆的宽度. 例如: <code>w200</code>.</p>
        <p><strong>Hn</strong>: 矩形或椭圆的高度. 例如: <code>h200</code>.</p>
        <p><strong>X-Y</strong>: 每一个都是一对 X/Y 坐标. 例如, <code>200-0</code> 将使用 200 作为 X 坐标, 0 作为 Y 坐标.</p>
        <p><strong>E</strong>: 设置窗口形状为椭圆形而不是矩形. 此选项仅在同时指定了 <strong>W</strong> 和 <strong>H</strong> 时才有效.</p>
        <p><strong>R[w-h]</strong>: 设置窗口形状为圆角矩形. 例如, <code>R30-30</code> 表示每个角为 30x30 的椭圆. 如果 <strong>w-h</strong> 省略, 则使用 30-30. <strong>R</strong> 仅在同时指定了 <strong>W</strong> 和 <strong>H</strong> 时才有效.</p>
        <p><strong>矩形或椭圆形</strong>: 如果指定了 <strong>W</strong> 和 <strong>H</strong> 选项, 那么会设置新显示的局域为矩形, 且其左上角的坐标为首个(且唯一)  <strong>X-Y</strong> 坐标对. 但是, 如果同时指定了 <strong>E</strong> 选项, 那么会设置窗口形状为椭圆形而不是矩形. 例如: <code>设置窗口形状 "50-0 W200 H250 E", <i>WinTitle</i></code>.</p>
        <p><strong>多边形</strong>: 如果 <strong>W</strong> 和 <strong>H</strong> 选项都不存在时, 新的显示区域将是由多个 <strong>X-Y</strong> 坐标对决定的多边形(每对坐标是窗口内相对于其左上角的一个点). 例如, 如果指定了三对坐标, 那么在多数时候窗口形状会被设置为三角形. 坐标对彼此间的相对顺序有时很重要. 此外, 可以在 <em>Options</em> 中指定单词 <strong>Wind</strong> 从而使用缠绕法代替变换方法来确定多边形的形状.</p>
    </dd>
    <dt>WinTitle</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#strings">字符串</a>, <a href="../Concepts.htm#numbers">整数</a>或<a href="../Objects.htm">对象</a></p>
        <p>识别目标窗口的窗口标题或其他条件. 请参阅 <a href="../misc/WinTitle.htm">WinTitle</a>.</p>
    </dd>
    <dt>WinText</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
        <p>如果存在, 此参数必须是目标窗口的单个文本元素的子字符串(和内置的 Window Spy 工具显示的一样). 如果 <a href="DetectHiddenText.htm">检测隐藏文本</a> 为 ON, 那么会检测隐藏文本元素.</p>
    </dd>
    <dt>ExcludeTitle</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
        <p>标题中含有此参数值的窗口将被排除.</p>
    </dd>
    <dt>ExcludeText</dt>
    <dd>
        <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
        <p>文本中含有此参数值的窗口将被排除.</p>
    </dd>
</dl>

<h2 id="Error_Handling">错误处理</h2>
<p>失败时抛出异常. 失败发生在以下情况: 1) 目标窗口不存在; 2) 一个或多个 <em>Options</em> 无效; 3) 指定的坐标超过 2000 对; 或 4) 指定的区域无效或无法应用于目标窗口.</p>

<h2 id="Remarks">备注</h2>
<p>鼠标光标下的窗口的 ID 可以使用 <a href="MouseGetPos.htm">获取鼠标位置</a> 来获取.</p>
<p>窗口标题和文本是区分大小写的. 除非 <a href="DetectHiddenWindows.htm">检测隐藏窗口</a> 被打开, 否则不会检测隐藏窗口.</p>

<h2 id="Related">相关</h2>
<p><a href="Win.htm">Win 函数</a>, <a href="Control.htm">Control 函数</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>设置窗口形状 "50-0 W200 H250", "ahk_class Notepad"  <em>; 隐藏记事本在这矩形之外的所有部分.</em>
设置窗口形状 "50-0 W200 H250 R40-40", "ahk_class Notepad"  <em>; 与上面相同, 不过带有 40x40 的圆角.</em>
设置窗口形状 "50-0 W200 H250 E", "ahk_class Notepad"  <em>; 椭圆形窗口.</em>
设置窗口形状 "50-0 250-0 150-250", "ahk_class Notepad"  <em>; 倒三角形窗口.</em>
设置窗口形状 , "ahk_class Notepad" <em>; 将窗口恢复原来/默认的形状.</em></pre>
</div>

<div class="ex" id="ExAdvanced">
<p><a href="#ExAdvanced">#2</a>: 这里是一个范围比较复杂的区域. 它在记事本(或任何其他窗口) 内创建一个透明的矩形孔. 下面指定了两个矩形: 一个外部的, 一个内部的. 每个矩形由 5 对 X/Y 坐标组成, 因为第一对是用来 &quot;闭合&quot; 每个矩形的重复坐标:</p>
<pre>设置窗口形状 "0-0 300-0 300-300 0-300 0-0   100-100 200-100 200-200 100-200 100-100", "ahk_class Notepad"</pre>
</div>

</body>
</html>